<html>
	<head>
		<title>if</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
		<meta name="viewport" content="width=device-width initial-scale=1">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Language" content="en-gb">

<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
		
	</head>
	<body class="commentary-font">
		<nav role="navigation">
		<h1><a href="../index.html"><img src="../docs-assets/Inform.png" height=72> </a></h1>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
<li><a href="../inform7n.html">inform7</a></li>
<li><a href="../intern.html">inter</a></li>
<li><a href="../services.html">services</a></li>
<li><a href="../secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="../inblorbn.html">inblorb</a></li>
<li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=0> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=0> inweb</a></li>
<li><a href="https://github.com/ganelson/intest"><img src="../docs-assets/github.png" height=0> intest</a></li>
</ul>
		</nav>
		<main role="main">
		<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><b>if</b></li></ul>
		<p class="purpose">The interactive-fiction specific layer of Inform, as a module. This is version 1.</p>
		<hr>
		<div class="contentspage">
			<ul class="chapterlist">
				<li>
					<p class="chapterentry"><a name="P"></a>
						<span class="chaptertitle">Preliminaries</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="P-wtmd.html">
								<spon class="sectiontitle">What This Module Does</span></a> -
							<span class="sectionpurpose">An overview of the if module's role and abilities.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="1"></a>
						<span class="chaptertitle">Chapter 1: Starting Up</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="1-im.html">
								<spon class="sectiontitle">IF Module</span></a> -
							<span class="sectionpurpose">Setting up the use of this module.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="2"></a>
						<span class="chaptertitle">Chapter 2: Bibliographic Data</span></p>
					<p class="chapterpurpose">ISBN-like data and cataloguing information, and Release... sentences.</p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="2-bd.html">
								<spon class="sectiontitle">Bibliographic Data</span></a> -
							<span class="sectionpurpose">To manage the special variables providing bibliographic data on the work of IF being generated (title, author's name and so forth), and to write the Library Card in the index.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ri.html">
								<spon class="sectiontitle">Release Instructions</span></a> -
							<span class="sectionpurpose">To write the iFiction record for the work of IF compiled, its release instructions and its picture manifest, if any.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-tir.html">
								<spon class="sectiontitle">The iFiction Record</span></a> -
							<span class="sectionpurpose">To write the iFiction record for the work of IF compiled.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-tbf.html">
								<spon class="sectiontitle">The Blurb File</span></a> -
							<span class="sectionpurpose">To write the blurb file of instructions for inblorb to release the project.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="3"></a>
						<span class="chaptertitle">Chapter 3: Space and Time</span></p>
					<p class="chapterpurpose">A simulated world of geography, spatial containment and scenes.</p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="3-sm.html">
								<spon class="sectiontitle">Spatial Model</span></a> -
							<span class="sectionpurpose">A feature which constructs the fundamental spatial model used by IF, to represent containment, support, carrying, wearing, and incorporation.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-enah.html">
								<spon class="sectiontitle">Everywhere, Nowhere and Here</span></a> -
							<span class="sectionpurpose">To define the unary predicates for some anaphoric location adjectives.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-sr.html">
								<spon class="sectiontitle">Spatial Relations</span></a> -
							<span class="sectionpurpose">Binary predicates for spatial relationships.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-si.html">
								<spon class="sectiontitle">Spatial Inferences</span></a> -
							<span class="sectionpurpose">Six families of inference used by the spatial feature.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-prs.html">
								<spon class="sectiontitle">Persons</span></a> -
							<span class="sectionpurpose">A feature marking instances of person as being "animate".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-tp.html">
								<spon class="sectiontitle">The Player</span></a> -
							<span class="sectionpurpose">A feature to give a special role to a person who is the protagonist.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-dvc.html">
								<spon class="sectiontitle">Devices</span></a> -
							<span class="sectionpurpose">A feature giving minimal support for switchable devices.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-bck.html">
								<spon class="sectiontitle">Backdrops</span></a> -
							<span class="sectionpurpose">A feature to provide support for backdrop objects, which are present as scenery in multiple rooms at once.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-rgn.html">
								<spon class="sectiontitle">Regions</span></a> -
							<span class="sectionpurpose">A feature providing support for grouping rooms together into named and nestable regions.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-tm.html">
								<spon class="sectiontitle">The Map</span></a> -
							<span class="sectionpurpose">A feature to provide a geographical model, linking rooms and doors together in oppositely-paired directions.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-mcr.html">
								<spon class="sectiontitle">Map Connection Relations</span></a> -
							<span class="sectionpurpose">To define one binary predicate for each map direction, such as "mapped north of".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-tr.html">
								<spon class="sectiontitle">Timed Rules</span></a> -
							<span class="sectionpurpose">A feature to support rules like "At 12:03AM: ...".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-scn.html">
								<spon class="sectiontitle">Scenes</span></a> -
							<span class="sectionpurpose">A feature to support named periods of time during an interactive story.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-ts.html">
								<spon class="sectiontitle">The Score</span></a> -
							<span class="sectionpurpose">A feature to support the score variables.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-mhr.html">
								<spon class="sectiontitle">Mapping Hint Requests</span></a> -
							<span class="sectionpurpose">Special sentences giving layout or design hints on how to produce the World map in the index and an EPS map.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="4"></a>
						<span class="chaptertitle">Chapter 4: Actions</span></p>
					<p class="chapterpurpose">Actions are impulses to do something within the simulated world.</p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="4-ap.html">
								<spon class="sectiontitle">Actions Plugin</span></a> -
							<span class="sectionpurpose">A feature for actions, by which animate characters change the world model.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-anaa.html">
								<spon class="sectiontitle">Actions-Only Nodes and Annotations</span></a> -
							<span class="sectionpurpose">Additional syntax tree node and annotation types used by the actions feature.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ak.html">
								<spon class="sectiontitle">Action Kinds</span></a> -
							<span class="sectionpurpose">Three action-related kinds of value.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ac.html">
								<spon class="sectiontitle">Action Conditions</span></a> -
							<span class="sectionpurpose">A special condition for testing against action patterns.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-act.html">
								<spon class="sectiontitle">Actions</span></a> -
							<span class="sectionpurpose">Each different sort of impulse to do something is an "action name".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-as.html">
								<spon class="sectiontitle">Action Semantics</span></a> -
							<span class="sectionpurpose">Constraints on how actions may be used in the model world.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-av.html">
								<spon class="sectiontitle">Action Variables</span></a> -
							<span class="sectionpurpose">Variables shared by the rules of the rulebooks processing an action.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ann.html">
								<spon class="sectiontitle">Action Name Names</span></a> -
							<span class="sectionpurpose">There is an annoying profusion of ways an action can have a name.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ap2.html">
								<spon class="sectiontitle">Action Patterns</span></a> -
							<span class="sectionpurpose">An action pattern is a description which may match many actions or none. The text "doing something" matches every action, while "throwing something at a door in a dark room" is seldom matched.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-anl.html">
								<spon class="sectiontitle">Action Name Lists</span></a> -
							<span class="sectionpurpose">Action name lists are used in parsing action patterns, and identify which action names seem to be possible within them.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-apc.html">
								<spon class="sectiontitle">Action Pattern Clauses</span></a> -
							<span class="sectionpurpose">Pattern-matches on individual nouns in an action are called clauses.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-pap.html">
								<spon class="sectiontitle">Parse Action Patterns</span></a> -
							<span class="sectionpurpose">Turning text into APs.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-pc.html">
								<spon class="sectiontitle">Parse Clauses</span></a> -
							<span class="sectionpurpose">Parsing the clauses part of an AP from source text.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ea.html">
								<spon class="sectiontitle">Explicit Actions</span></a> -
							<span class="sectionpurpose">An exactly specified action is called "explicit".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-nap.html">
								<spon class="sectiontitle">Named Action Patterns</span></a> -
							<span class="sectionpurpose">A named action pattern is a categorisation of behaviour.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-gng.html">
								<spon class="sectiontitle">Going</span></a> -
							<span class="sectionpurpose">A feature to provide a little extra support for the "going" action.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-rpoa.html">
								<spon class="sectiontitle">Rules Predicated on Actions</span></a> -
							<span class="sectionpurpose">Rules can be set to run only if the action matches a given pattern.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="5"></a>
						<span class="chaptertitle">Chapter 5: Command Parser</span></p>
					<p class="chapterpurpose">Understand... sentences become a grammar for the command parser to use at run-time.</p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="5-pp.html">
								<spon class="sectiontitle">Parsing Plugin</span></a> -
							<span class="sectionpurpose">A feature for command-parser support.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-us.html">
								<spon class="sectiontitle">Understand Sentences</span></a> -
							<span class="sectionpurpose">Command parser grammar is laid out in special Understand... sentences.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-cg.html">
								<spon class="sectiontitle">Command Grammars</span></a> -
							<span class="sectionpurpose">The possible command text following a command verb, or referring to a single concept or object, is gathered into a "command grammar".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-cgl.html">
								<spon class="sectiontitle">Command Grammar Lines</span></a> -
							<span class="sectionpurpose">A CG line is a list of CG tokens to specify a textual pattern. For example, "take [something] out" is a CG line of three tokens.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-cgt.html">
								<spon class="sectiontitle">Command Grammar Tokens</span></a> -
							<span class="sectionpurpose">CGs are list of CG lines, which are lists of CG tokens.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-dt.html">
								<spon class="sectiontitle">Determination Types</span></a> -
							<span class="sectionpurpose">Command grammars, their lines and their tokens may each "determine" up to two values, and here we provide a way to describe the range of those.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-pv.html">
								<spon class="sectiontitle">Property Visibility</span></a> -
							<span class="sectionpurpose">Some properties can be referred to in the player's commands.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-ts.html">
								<spon class="sectiontitle">Test Scripts</span></a> -
							<span class="sectionpurpose">A rudimentary but useful testing system for runnign short sequences of commands through the command parser at runtime.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="6"></a>
						<span class="chaptertitle">Chapter 6: Dialogue</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="6-dlg.html">
								<spon class="sectiontitle">Dialogue</span></a> -
							<span class="sectionpurpose">A nascent system for managing conversation.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-db.html">
								<spon class="sectiontitle">Dialogue Beats</span></a> -
							<span class="sectionpurpose">To manage dialogue beats and to parse their cue paragraphs.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-dl.html">
								<spon class="sectiontitle">Dialogue Lines</span></a> -
							<span class="sectionpurpose">To manage dialogue lines.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-dc.html">
								<spon class="sectiontitle">Dialogue Choices</span></a> -
							<span class="sectionpurpose">To manage dialogue choices.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-dn.html">
								<spon class="sectiontitle">Dialogue Nodes</span></a> -
							<span class="sectionpurpose">The structure of a dialogue beat as a tree of nodes, each of which can be either a line or a choice.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-dr.html">
								<spon class="sectiontitle">Dialogue Relations</span></a> -
							<span class="sectionpurpose">Binary predicates for spatial relationships.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-ps.html">
								<spon class="sectiontitle">Performance Styles</span></a> -
							<span class="sectionpurpose">Manners of speaking, used in dialogue.</span></p>
						</li>
					</ul>
				</li>
			</ul>
		</div>
		<hr>
		<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
		</main>
	</body>
</html>

